home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / pcpooler.arc / PLAYER.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  12.9 KB  |  314 lines

  1. 10  REM player program pc-pooler:player data maintenance, stats printing ytd totals
  2. 20  ON ERROR GOTO 2920
  3. 25  IF O9=0 THEN ERROR 101
  4. 26  SVO9=O9:SVDT$=DT$:SVGM$=GM$:SVLPL=LPL
  5. 30  KEY OFF
  6. 40  MNP=50:REM maximum number of players
  7. 50  DIM NM$(MNP),PSTAT%(7,MNP),NM2$(MNP),PS2%(8,MNP):BLNK$="                                       ":BLNK2$="                    "
  8. 60  GOSUB 210:REM read in player information, set np (number of players)
  9. 70  CHNG=0:IF NP>0 THEN TOP=1:ELSE TOP=0
  10. 80  KEY 1,"Q":KEY 2,"P":KEY 3,"D":KEY 4,"":KEY 5,"A":KEY 6,"H":KEY 7,"U":KEY 8,"V":KEY 9,"B":KEY 10,"F"
  11. 90  GOSUB 290:REM main screen print, options
  12. 100  IF CHNG=0 THEN 200
  13. 110  CLS:PRINT "Save changes made this session?"
  14. 120  LOCATE 2,1:PRINT "Hit Y or N please..."
  15. 130  GOSUB 1620:REM get a character
  16. 140  IF C$="N" THEN 200:ELSE IF C$<>"Y" THEN 120
  17. 141  WHILE NM$(NP)=BLNK2$
  18. 142  NP=NP-1
  19. 143  WEND
  20. 150  OPEN "PLAYER.DAT" FOR OUTPUT AS #1:PRINT#1,NP
  21. 160  FOR I=1 TO NP
  22. 170      PRINT#1,PSTAT%(1,I);",";PSTAT%(2,I);",";PSTAT%(3,I);",";PSTAT%(4,I);",";PSTAT%(5,I);",";PSTAT%(6,I);",";PSTAT%(7,I);",";NM$(I)
  23. 180  NEXT I
  24. 190  CLOSE#1
  25. 200  O9=SVO9:DT$=SVDT$:GM$=SVGM$:LPL=SVLPL:COMMON O9,LPL,DT$,GM$:CLS:PRINT"Reading main menu...":CHAIN"pooler"
  26. 210  REM read in player info
  27. 220  OPEN "PLAYER.DAT" FOR INPUT AS #1:INPUT#1,NP:IF NP>MNP THEN ERROR 150
  28. 230  FOR I7=1 TO NP
  29. 240     INPUT#1,PSTAT%(1,I7),PSTAT%(2,I7),PSTAT%(3,I7),PSTAT%(4,I7),PSTAT%(5,I7),PSTAT%(6,I7),PSTAT%(7,I7),NM$(I7):NM$(I7)=LEFT$(NM$(I7)+BLNK2$,20)
  30. 250  NEXT I7
  31. 260  CLOSE#1
  32. 270  CNF$=MID$(GM$,2,1)
  33. 280  RETURN
  34. 290  REM main screen routine and menu
  35. 300  CLS:IF NP=0 THEN PRINT"No players in file.":GOTO 350:ELSE PRINT"P#  Player Name"
  36. 310  BOT=TOP+19:IF BOT>NP THEN BOT=NP
  37. 320  FOR I=TOP TO BOT
  38. 330     PRINT USING "##";I;:PRINT ". ";NM$(I)
  39. 340  NEXT I
  40. 350  OLDTOP=TOP
  41. 360  LOCATE 22,1:PRINT "Command?====>                         ";
  42. 370  LOCATE 23,1:PRINT "F1=Quit F2=Print  F3=Delete F5=Add    ";
  43. 380  LOCATE 24,1:PRINT "F6=Help F7=Update F8=View   F9=B F10=F";
  44. 390  LOCATE 25,1:PRINT LEFT$(MSG$+BLNK$,39);
  45. 400  GOSUB 1620
  46. 410  MSG$="Please enter command (Q to Quit)."
  47. 420  IF C$="Q" THEN RETURN
  48. 430  IF C$="F" THEN TOP=TOP+19:IF TOP>NP THEN TOP=NP:C$="0"
  49. 440  IF C$="B" THEN TOP=TOP-19:IF TOP<NP THEN TOP=1:C$="0"
  50. 450  IF C$="H" THEN GOSUB 1730:C$="0"
  51. 460  IF C$="A" THEN GOSUB 520:C$="0"
  52. 470  IF C$="D" THEN GOSUB 740:C$="0"
  53. 480  IF C$="U" THEN GOSUB 910:C$="0"
  54. 490  IF C$="V" THEN GOSUB 1360:C$="0"
  55. 500  IF C$="P" THEN GOSUB 2400
  56. 510  IF OLDTOP=TOP THEN 360:ELSE 300
  57. 520  REM add routine
  58. 530  LOCATE 22,15:PRINT "Add a player.           ";
  59. 540  FOR I=1 TO NP:IF NM$(I)=BLNK2$ THEN 570
  60. 550  NEXT I
  61. 560  IF NP<MNP THEN I=NP+1:ELSE MSG$="No room to add a player.":RETURN
  62. 570  PLN=I
  63. 580  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter player name above.";
  64. 590  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Just press ENTER to cancel).";
  65. 600  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 730
  66. 610  A$=LEFT$(A$+BLNK2$,20):IF A$=BLNK2$ THEN 730
  67. 620  GOSUB 1670
  68. 630  FOR I=1 TO NP:IF NM$(I)=A$ THEN 660
  69. 640  NEXT I
  70. 650  GOTO 670
  71. 660  MSG$="Duplicate name exists.":TOP=I:RETURN
  72. 670  LOCATE 23,1:PRINT USING "##";PLN;:PRINT ". ";A$;
  73. 680  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Verify name OK---";
  74. 690  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit Y to accept, N to cancel).";
  75. 700  GOSUB 1620:IF C$="N" THEN 730:ELSE IF C$<>"Y" THEN 700
  76. 710  IF PLN>NP THEN NP=NP+1
  77. 720  NM$(PLN)=A$:PSTAT%(1,PLN)=0:PSTAT%(2,PLN)=0:PSTAT%(3,PLN)=0:PSTAT%(4,PLN)=0:PSTAT%(5,PLN)=0:PSTAT%(6,PLN)=0:PSTAT%(7,PLN)=0:CHNG=1:MSG$="Add complete.":TOP=PLN:OLDTOP=0:RETURN
  78. 730  MSG$="Add cancelled.":RETURN
  79. 740  REM delete routine
  80. 750  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter Player# to delete.";
  81. 760  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(1 -";NP;", press ENTER to cancel).";
  82. 770  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 900
  83. 780  DP%=VAL(A$):IF DP%=0 THEN 900:ELSE IF (DP%<1)OR(DP%>NP) THEN 770
  84. 790  IF NM$(DP%)=BLNK2$ THEN MSG$="Player "+A$+" already blank.":RETURN
  85. 800    CLS:PRINT USING "Player ##";DP%:PRINT "Name: ";NM$(DP%)
  86. 810    PRINT
  87. 820    PRINT USING "Total Weeks In: #####";PSTAT%(1,DP%)
  88. 830    PRINT USING "Total Points:   #####";PSTAT%(2,DP%)
  89. 840    PRINT USING "Total Won:      #####";PSTAT%(3,DP%)
  90. 850    PRINT USING "Total Lost:     #####";PSTAT%(4,DP%)
  91. 860    PRINT:PRINT:PRINT "Hit Y to verify delete,"
  92. 870    PRINT "Or N to cancel delete."
  93. 880  GOSUB 1620:IF C$="N" THEN OLDTOP=-1:GOTO 900:ELSE IF C$<>"Y" THEN 880
  94. 890  CHNG=1:NM$(DP%)=BLNK2$:MSG$="Delete complete.":OLDTOP=-1:RETURN
  95. 900  MSG$="Delete cancelled.":RETURN
  96. 910  REM update routine to adjust totals, name spelling
  97. 920  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter Player# to update.";
  98. 930  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(1 -";NP;", press ENTER to cancel).";
  99. 940  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 1350
  100. 950  DP%=VAL(A$):IF DP%=0 THEN 1350:ELSE IF (DP%<1)OR(DP%>NP) THEN 940
  101. 960  IF NM$(DP%)=BLNK2$ THEN MSG$="Player "+A$+" is blank. Try Add.":RETURN
  102. 970  N$=NM$(DP%):PS1=PSTAT%(1,DP%):PS2=PSTAT%(2,DP%):PS3=PSTAT%(3,DP%):PS4=PSTAT%(4,DP%):CHNG2=0
  103. 980    CLS:PRINT USING "Player ##";DP%:PRINT
  104. 990    PRINT "1. Name: ";N$
  105. 1000    PRINT USING "2. Total Weeks In: #####";PS1
  106. 1010    PRINT USING "3. Total Points:   #####";PS2
  107. 1020    PRINT USING "4. Total Won:      #####";PS3
  108. 1030    PRINT USING "5. Total Lost:     #####";PS4
  109. 1040  LOCATE 10,1:PRINT BLNK$;:LOCATE 10,1:PRINT"Enter Item# to change.";
  110. 1050  LOCATE 11,1:PRINT BLNK$;:LOCATE 11,1:PRINT"(1 - 5, 0 to end).";
  111. 1060  LOCATE 9,1:PRINT BLNK$;:LOCATE 9,1:INPUT A$:IF LEN(A$)=0 THEN 1060
  112. 1070  CH%=VAL(A$):IF CH%=0 THEN 1290:ELSE IF (CH%<1)OR(CH%>5) THEN 1060
  113. 1080  ON CH% GOTO 1090,1130,1170,1210,1250
  114. 1090  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter new name above.";
  115. 1100  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit ENTER to cancel).";
  116. 1110  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 980
  117. 1120  GOSUB 1670:A$=LEFT$(A$+BLNK2$,20):IF (A$=BLNK2$)OR(A$=N$) THEN 980:ELSE N$=A$:CHNG2=1:GOTO 980
  118. 1130  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter total weeks.";
  119. 1140  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit ENTER to cancel).";
  120. 1150  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 980
  121. 1160  CHNG2=1:PS1=VAL(A$):GOTO 980
  122. 1170  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter total points.";
  123. 1180  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit ENTER to cancel).";
  124. 1190  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 980
  125. 1200  CHNG2=1:PS2=VAL(A$):GOTO 980
  126. 1210  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter total games won.";
  127. 1220  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit ENTER to cancel).";
  128. 1230  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 980
  129. 1240  CHNG2=1:PS3=VAL(A$):GOTO 980
  130. 1250  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter total games lost.";
  131. 1260  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(Hit ENTER to cancel).";
  132. 1270  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 980
  133. 1280  CHNG2=1:PS4=VAL(A$):GOTO 980
  134. 1290  OLDTOP=-1:IF CHNG2=0 THEN MSG$="No changes made.":RETURN
  135. 1300    PRINT:PRINT "Hit Y to verify changes,"
  136. 1310    PRINT "Or N to cancel update."
  137. 1320  GOSUB 1620:IF C$="N" THEN 1340:ELSE IF C$<>"Y" THEN 1320
  138. 1330  NM$(DP%)=N$:PSTAT%(1,DP%)=PS1:PSTAT%(2,DP%)=PS2:PSTAT%(3,DP%)=PS3:PSTAT%(4,DP%)=PS4:CHNG=1:MSG$="Update complete.":RETURN
  139. 1340  MSG$="Update cancelled.":RETURN
  140. 1350  MSG$="Update cancelled.":RETURN
  141. 1360  REM view routine
  142. 1370  QZS=SPOS
  143. 1380  IF NP=0 THEN MSG$="No player information to view.":RETURN
  144. 1390  IF NP=1 THEN SPOS=1:GOTO 1440
  145. 1400  LOCATE 24,1:PRINT BLNK$;:LOCATE 24,1:PRINT"Enter starting player #.";
  146. 1410  LOCATE 25,1:PRINT BLNK$;:LOCATE 25,1:PRINT"(1 -";NP;"or press ENTER to cancel).";
  147. 1420  LOCATE 23,1:PRINT BLNK$;:LOCATE 23,1:INPUT A$:IF LEN(A$)=0 THEN 1610
  148. 1430  SPOS=VAL(A$):IF (SPOS<1)OR(SPOS>NP) THEN 1420
  149. 1440  WHILE SPOS<=NP
  150. 1450    A$=NM$(SPOS):IF A$=BLNK2$ THEN 1580
  151. 1460    CLS:PRINT USING "Player ##";SPOS:PRINT "Name: ";A$
  152. 1470  PRINT
  153. 1480    PRINT USING "Total Weeks In: #####";PSTAT%(1,SPOS)
  154. 1490    PRINT USING "Total Points:   #####";PSTAT%(2,SPOS)
  155. 1500    PRINT USING "Total Won:      #####";PSTAT%(3,SPOS)
  156. 1510    PRINT USING "Total Lost:     #####";PSTAT%(4,SPOS)
  157. 1520    PRINT USING "Week Points:    #####";PSTAT%(5,SPOS)
  158. 1530    PRINT USING "Week Won:       #####";PSTAT%(6,SPOS)
  159. 1540    PRINT USING "Week Lost:      #####";PSTAT%(7,SPOS)
  160. 1550    PRINT:PRINT:PRINT "Hit any key to continue,"
  161. 1560    PRINT "Or E to exit view."
  162. 1570    GOSUB 1620:IF C$="E" THEN 1600
  163. 1580    SPOS=SPOS+1
  164. 1590  WEND
  165. 1600  MSG$="View complete.":OLDTOP=-1:SPOS=QZS:RETURN
  166. 1610  MSG$="View cancelled.":SPOS=QZS:RETURN
  167. 1620  REM get a character
  168. 1630  C$=INKEY$:IF LEN(C$)=0 THEN 1630
  169. 1650  IF (C$>="a")AND(C$<="z") THEN C$=CHR$(ASC(C$)-32)
  170. 1660  RETURN
  171. 1670  IF LEN(A$)=0 THEN RETURN:ELSE C1$=""
  172. 1680  FOR C1=1 TO LEN(A$)
  173. 1690    C2$=MID$(A$,C1,1):IF (C2$>="a")AND(C2$<="z") THEN C2$=CHR$(ASC(C2$)-32)
  174. 1700    C1$=C1$+C2$
  175. 1710  NEXT C1
  176. 1720  A$=C1$:RETURN
  177. 1730  REM help routine
  178. 1740  OLDTOP=-1
  179. 1750  CLS:PRINT "Player File Maintenance Information"
  180. 1760  PRINT
  181. 1770  PRINT"This module may be used to display and"
  182. 1780  PRINT"print player information as well as add"
  183. 1790  PRINT"players to the game, delete players who"
  184. 1800  PRINT"are no longer playing, or modify player"
  185. 1810  PRINT"statistics and/or name spellings."
  186. 1820  PRINT
  187. 1830  PRINT"You may select the following options"
  188. 1840  PRINT"by hitting the appropriate function"
  189. 1850  PRINT"keys (i.e., F1, F2) or hitting the"
  190. 1860  PRINT"first letter of the command that you":PRINT"want."
  191. 1870  PRINT
  192. 1880  PRINT"Quit - F1 - This option will take you"
  193. 1890  PRINT"     out of this module. If you made "
  194. 1900  PRINT"     any data changes, you must enter"
  195. 1910  PRINT"     a verification that you want the"
  196. 1920  PRINT"     changes permanently saved."
  197. 1930  GOSUB 2390:IF C$="E" THEN RETURN
  198. 1940  PRINT"Print - F2 - This option will let you"
  199. 1950  PRINT"     produce a hard-copy listing of"
  200. 1960  PRINT"     player statistics, with a sort"
  201. 1970  PRINT"     on points or games won if desired."
  202. 1980  PRINT"     This can only be done when a"
  203. 1990  PRINT"     printer is available.":PRINT
  204. 2000  PRINT"Delete - F3 - This option will let you"
  205. 2010  PRINT"     remove player data for a person"
  206. 2020  PRINT"     who is no longer playing (to allow"
  207. 2030  PRINT"     room for another player)."
  208. 2040  PRINT"     You will be prompted for a player"
  209. 2050  PRINT"     number and final verification."
  210. 2060  PRINT
  211. 2070  PRINT"Add - F5 - This option will allow you"
  212. 2080  PRINT"     to add a player to the game. You"
  213. 2090  PRINT"     will be asked for the name and"
  214. 2100  PRINT"     to verify the spelling. You can't"
  215. 2110  PRINT"     add a player with exactly the same"
  216. 2120  PRINT"     name(entered) as one already in."
  217. 2130  PRINT"     All statistics for the new player"
  218. 2140  PRINT"     are set to zero (0)."
  219. 2150  GOSUB 2390:IF C$="E" THEN RETURN
  220. 2160  PRINT"Help - F6 - This option will re-display"
  221. 2170  PRINT"     these help screens.":PRINT
  222. 2180  PRINT"Update - F7 - This option will allow"
  223. 2190  PRINT"     you to make data changes (i.e.,"
  224. 2200  PRINT"     name, point totals). You will be"
  225. 2210  PRINT"     asked for player#, then the info"
  226. 2220  PRINT"     will be displayed. You can then"
  227. 2230  PRINT"     make changes. Upon exit you must"
  228. 2240  PRINT"     verify that changes are applied."
  229. 2250  PRINT
  230. 2260  PRINT"View - F8 - This option will allow"
  231. 2270  PRINT"     you to display player data in"
  232. 2280  PRINT"     a full-screen mode and scroll"
  233. 2290  PRINT"     forward in the file. You will"
  234. 2300  PRINT"     be prompted for the player you"
  235. 2310  PRINT"     want to start at."
  236. 2320  PRINT
  237. 2330  PRINT"Back - F9 - Scroll back when"
  238. 2340  PRINT"     looking at player list."
  239. 2350  PRINT
  240. 2360  PRINT"Forward - F10 - Scroll forward when"
  241. 2370  PRINT"     looking at player list."
  242. 2380  GOTO 2391
  243. 2390  LOCATE 25,1:PRINT"Press E to End, any key to go on.";:GOSUB 1620:CLS:RETURN
  244. 2391  LOCATE 25,1:PRINT"Press any key to go on.";:GOSUB 1620:CLS:RETURN
  245. 2400  REM printthe list...no selection...option to sort on y-t-d record
  246. 2410  IF NP=0 THEN MSG$="No players in list.":GOTO 2900
  247. 2420  CLS:PRINT"Player Listing - YTD Results":PRINT
  248. 2430  NP2=0
  249. 2440  FOR Z2=1 TO NP:IF NM$(Z2)=BLNK2$ THEN 2470
  250. 2450  NP2=NP2+1:NM2$(NP2)=NM$(Z2):PS2%(1,NP2)=PSTAT%(1,Z2):PS2%(2,NP2)=PSTAT%(2,Z2):PS2%(3,NP2)=PSTAT%(3,Z2):PS2%(4,NP2)=PSTAT%(4,Z2):PS2%(5,NP2)=Z2
  251. 2460  PS2%(6,NP2)=PSTAT%(5,Z2):PS2%(7,NP2)=PSTAT%(6,Z2):PS2%(8,NP2)=PSTAT%(7,Z2)
  252. 2470  NEXT Z2
  253. 2480  PRINT"Do you want the output sorted":IF CNF$="Y" THEN PRINT "by total confidence points?":ELSE PRINT"by total games won?"
  254. 2490  PRINT:PRINT"Hit Y to sort, or N to leave":PRINT"in player # order.":PRINT
  255. 2500  GOSUB 1620:IF C$="N" THEN PRINT"Unsorted...":GOTO 2630:ELSE IF C$<>"Y" THEN 2500
  256. 2510  PRINT"Sorting..."
  257. 2520  IF CNF$="Y" THEN STKEY=2:ELSE STKEY=3
  258. 2530  FOR S1=1 TO NP2-1
  259. 2540      MXV=PS2%(STKEY,S1):MXP=S1
  260. 2550      FOR S2=S1+1 TO NP2
  261. 2560          IF PS2%(STKEY,S2)<=MXV THEN 2580
  262. 2570          MXV=PS2%(STKEY,S2):MXP=S2
  263. 2580      NEXT S2
  264. 2590      IF MXP=S1 THEN 2620:ELSE S2=MXP
  265. 2600      SWAP PS2%(1,S2),PS2%(1,S1):SWAP PS2%(2,S2),PS2%(2,S1):SWAP PS2%(3,S2),PS2%(3,S1):SWAP PS2%(4,S2),PS2%(4,S1):SWAP PS2%(5,S2),PS2%(5,S1):SWAP NM2$(S2),NM2$(S1)
  266. 2610      SWAP PS2%(6,S2),PS2%(6,S1):SWAP PS2%(7,S2),PS2%(7,S1):SWAP PS2%(8,S2),PS2%(8,S1)
  267. 2620  NEXT S1
  268. 2630  SRT$=C$:PRINT:PRINT"Enter number of copies below,":PRINT"Or 0 to cancel print."
  269. 2640  INPUT A$:CPYS%=VAL(A$):IF CPYS%<1 THEN MSG$="Print cancelled.":GOTO 2900
  270. 2650  PRINT:PRINT"Hit P when printer ready,":PRINT"Or Q to cancel print."
  271. 2660  GOSUB 1620:IF C$="Q" THEN MSG$="Print cancelled.":GOTO 2900:ELSE IF C$<>"P" THEN 2660
  272. 2670  FOR ZQ3=1 TO CPYS%
  273. 2680  LPRINT:LPRINT:LPRINT:LPRINT"Player List ";
  274. 2690  IF SRT$="N" THEN LPRINT:GOTO 2710
  275. 2700  LPRINT"- Sorted By ";:IF STKEY=2 THEN LPRINT"Total Points":ELSE LPRINT"Total Games Won"
  276. 2710  LPRINT
  277. 2720  LPRINT"No.";TAB(5);"Player";TAB(25);"Weeks";TAB(32);"Y-T-D";TAB(39);"Y-T-D";TAB(45);"Y-T-D";TAB(52);"Week";TAB(58);"Week";TAB(63);"Week"
  278. 2730  LPRINT TAB(5);"Name";TAB(25);"Played";TAB(32);"Points";TAB(40);"Won";TAB(45);"Lost";TAB(51);"Points";TAB(58);"Won";TAB(63);"Lost"
  279. 2740  LPRINT
  280. 2750  FOR Z2=1 TO NP2
  281. 2760      LPRINT USING "##";PS2%(5,Z2);:LPRINT".";
  282. 2770      LPRINT TAB(5);NM2$(Z2);TAB(26);
  283. 2780      IF PS2%(1,Z2)=0 THEN LPRINT"---";:ELSE LPRINT USING "###";PS2%(1,Z2);
  284. 2790      LPRINT TAB(33);:LPRINT USING "####";PS2%(2,Z2);
  285. 2800      LPRINT TAB(40);:LPRINT USING "###";PS2%(3,Z2);
  286. 2810      LPRINT TAB(46);:LPRINT USING "###";PS2%(4,Z2);
  287. 2820      LPRINT TAB(52);:LPRINT USING "####";PS2%(6,Z2);
  288. 2830      LPRINT TAB(58);:LPRINT USING "###";PS2%(7,Z2);
  289. 2840      LPRINT TAB(64);:LPRINT USING "###";PS2%(8,Z2)
  290. 2850  NEXT Z2
  291. 2860  NLL=LPL-((NP2+8) MOD LPL)
  292. 2870  FOR ZQ2=1 TO NLL:LPRINT:NEXT ZQ2
  293. 2880  NEXT ZQ3
  294. 2890  MSG$="Print Complete."
  295. 2900  OLDTOP=-1:RETURN
  296. 2910  MSG$="Print cancelled.":OLDTOP=-1:RETURN
  297. 2920  REM error handling routines
  298. 2930  PRINT:IF ERL=220 AND ERR=53 THEN PRINT"PLAYERS data not found on logged drive.":NP=0:GOSUB 3040:RESUME 270
  299. 2940  IF (ERL=220 OR ERL=240) AND (ERR=24 OR ERR=25 OR ERR=62 OR ERR=71 OR ERR=72) THEN PRINT"Error reading PLAYER on logged drive.":ELSE GOTO 2960
  300. 2950  GOSUB 3020:CLOSE#1:IF C$="R" THEN RESUME 220:ELSE RESUME 200
  301. 2960  IF (ERL=150 OR ERL=170) AND (ERR=24 OR ERR=25 OR ERR=53 OR ERR=61 OR ERR=70 OR ERR=71 OR ERR=72) THEN 2970:ELSE 2980
  302. 2970  PRINT"Error writing PLAYER on logged drive.":GOSUB 3020:IF C$="R" THEN RESUME 150:ELSE RESUME 200
  303. 2980  IF ERL=200 AND (ERR=53 OR ERR=71 OR ERR=72) THEN 2990:ELSE 3000
  304. 2990  PRINT"Invalid number of players in":PRINT"player file. Restore backup":PRINT"and re-try.":GOSUB 3040:SYSTEM
  305. 3000  IF ERR=27 OR ERR=24 OR ERR=25 THEN PRINT"Printer error.":GOSUB 3020:IF C$="R" THEN RESUME:ELSE RESUME 2910
  306. 3001  IF ERR<>101 THEN 3005
  307. 3002  CLS:PRINT"This program must be accessed via":PRINT"the POOLER program (main menu).":GOSUB 3040:SYSTEM
  308. 3005  IF ERR<>150 THEN 3010
  309. 3006  CLS:PRINT"Number of players in file":PRINT"invalid. Restore old file":PRINT"and re-try.":GOSUB 3040:SYSTEM
  310. 3010  PRINT"Irrecoverable error#";ERR:ON ERROR GOTO 0
  311. 3020  PRINT"Press R to re-try or Q to quit."
  312. 3030  GOSUB 1620:IF C$="R" OR C$="Q" THEN RETURN:ELSE GOTO 3020
  313. 3040  FOR I=1 TO 400:J7=I*2:NEXT I:RETURN:REM delay for messages
  314.